cmake_minimum_required(VERSION 3.10)
project(EigenExample)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(Eigen3_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../3rdparty/eigen-3.4.0/_install_x86_64/share/eigen3/cmake")
message(STATUS "Eigen3_DIR: ${Eigen3_DIR}")

# 查找Eigen3库
# find_package(Eigen3 3.4 REQUIRED NO_MODULE)
find_package(Eigen3 3.4 NO_MODULE)  # 不使用REQUIRED避免自动终止
if(Eigen3_FOUND)
    message(STATUS "Eigen3 found successfully. Version: ${Eigen3_VERSION}")
    message(STATUS "Eigen3 include directory: ${EIGEN3_INCLUDE_DIR}")
else()
    message(FATAL_ERROR "Error: Eigen3 3.4 or higher not found. Please install the required version.")
endif()

# 如果 Eigen 未安装到系统路径，使用以下方式指定头文件目录
# include_directories(../eigen)  # 假设 Eigen 源代码在上级目录的 eigen 文件夹

# 添加可执行文件
add_executable(eigen_example main_eigen.cpp)

# 添加 Eigen 头文件目录（作为 find_package 的补充验证）
if(EIGEN3_INCLUDE_DIR)
    message(STATUS "Eigen3_INCLUDE_DIR: ${EIGEN3_INCLUDE_DIR}")
    # target_include_directories(eigen_example PRIVATE ${EIGEN3_INCLUDE_DIR})
endif()

# 链接 Eigen 库（Eigen 是头文件库，此步骤可选但推荐）
target_link_libraries(eigen_example Eigen3::Eigen)